文章摘要 FakeGPT
加载中...|
简介
本工具是一个基于 Bing 翻译 API 的自动化多语言翻译脚本,专为 Next.js 项目设计,能够帮助开发者快速实现国际化功能。通过简单的配置,它可以自动将中文文本翻译成多种语言,并生成对应的语言文件。
功能特点
- 支持增量翻译:仅翻译新增或修改的文本,提高效率
- 自动处理嵌套结构:保持 JSON 文件的层级结构不变
- 错误处理:记录翻译失败的文本,方便后续手动处理
- 延迟控制:可设置请求间隔,避免触发 API 限流
安装与配置
1. 安装依赖
bash
npm install bing-translate-api next-auto-translator
2. 创建语言文件目录
在项目根目录下创建语言文件目录,默认路径为 src/lang
,并在该目录下创建基准语言文件(如 zh.json
)。
3. 准备基准语言文件
在 src/lang/zh.json
中编写中文文本,支持嵌套结构:
json
json
{
"welcome": "欢迎使用我们的应用",
"features": {
"title": "主要功能",
"autoTranslate": "自动翻译",
"multiLanguage": "多语言支持"
}
}
4. 创建翻译脚本
创建一个 JavaScript 文件(如 translate.js
),配置并运行翻译工具:
javascript
javascript
const { translate } = require("bing-translate-api");
const AutoTranslator = require("next-auto-translator");
async function translateText(text, _source, target) {
const res = await translate(text, null, target);
return res.translation;
}
// ====== 配置区 ======
const baseLang = "zh"; // 基准语言
const targetLangs = [
"es",
"en",
"de",
"fr",
"pt",
"it",
"ja",
"th",
"pl",
"ko",
"ru",
"da",
"nb",
"nl",
"id",
"tw",
"tr",
]; // 目标语言
const langMap = {
zh: "zh-Hans",
tw: "zh-Hant",
};
const langDir = "src/lang"; // 语言包文件夹路径
// ====================
const translator = new AutoTranslator({
translateFunction: translateText,
translatorName: "Bing 机器翻译",
baseLang,
targetLangs,
delay: 0, // 设置请求延迟(毫秒),避免触发 API 限流
langMap,
langDir,
});
translator.batchTranslateMultiLang();
使用方法
1. 首次运行
bash
bash
node translate.js
首次运行时,工具会创建一个锁文件(src/lang/zh.lock.json
),用于跟踪文本变化,此时不会进行翻译。
2. 增量翻译
修改基准语言文件(zh.json
)后,再次运行脚本:
bash
bash
node translate.js
工具会自动检测新增或修改的文本,并将其翻译成目标语言。
3. 查看结果
翻译完成后,你可以在 src/lang
目录下看到生成的各语言文件(如 en.json
, ja.json
等)。
4. 处理翻译错误
如果有翻译失败的文本,工具会在 src/lang/error.json
中记录错误信息,你可以手动翻译这些文本。
配置说明
主要配置项
baseLang
: 基准语言(源语言)targetLangs
: 目标语言列表langMap
: 语言映射表,用于解决 API 语言代码与文件名不一致的问题langDir
: 语言文件目录delay
: 请求延迟(毫秒),避免频繁请求触发 API 限流
自定义翻译函数
如果你想使用其他翻译 API(如 Google、DeepL 等),只需修改 translateText
函数即可:
javascript
javascript
async function translateText(text, source, target) {
// 使用其他翻译 API 的代码
const res = await otherTranslationApi.translate(text, source, target);
return res.translation;
}
注意事项
- 请确保你的网络可以访问 Bing 翻译 API
- 频繁请求可能会触发 API 限流,建议适当设置
delay
参数 - 翻译结果可能存在不准确的情况,建议在正式发布前进行人工校对
- 锁文件(
.lock.json
)用于跟踪文本变化,请勿手动修改
🌐 开源工具:next-auto-translator,国际化自动增量翻译脚本包https://indulgeback.github.io/posts/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7/2%E3%80%81%F0%9F%8C%90%20%20%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7%EF%BC%9A%E5%9B%BD%E9%99%85%E5%8C%96%E8%87%AA%E5%8A%A8%E5%A2%9E%E9%87%8F%E7%BF%BB%E8%AF%91%E8%84%9A%E6%9C%AC%E5%8C%85%E3%80%8Cnext-auto-translator%E3%80%8D
赞赏博主
评论 隐私政策